/**
 * 
 */
package com.sicocre.business.dao.impl;

import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import com.sicocre.beans.Usuario;
import com.sicocre.business.dao.IUsuarioDao;

/**
 * @author malmanza
 *
 */

@Repository
public class UsuarioDaoImpl implements IUsuarioDao {

	private JdbcTemplate jdbcTemplate;
	public static String SELECT_USUARIO_BY_NAME="select user_id, username, password, enabled, nombre_completo, nombre_rol from sicocre_seg_roles a, sicocre_seg_users b where a.id_rol=b.id_rol and username =?";
	
	@Autowired
	public void setDataSource(DataSource ds){
		jdbcTemplate=new JdbcTemplate(ds);
	}
	
	/* (non-Javadoc)
	 * @see com.sicocre.business.dao.IUsuarioDao#getUserByUsername(java.lang.String)
	 */
	public Usuario getUserByUsername(String usuario) {
		// TODO Auto-generated method stub
		Usuario usuarioRes = jdbcTemplate.queryForObject(SELECT_USUARIO_BY_NAME, new Object[]{usuario}, new RowMapper<Usuario>() {

			public Usuario mapRow(ResultSet rs, int idx) throws SQLException {
				// TODO Auto-generated method stub
				Usuario usuario= new Usuario();
				usuario.setId(rs.getInt("user_id"));
				usuario.setNombreCompleto(rs.getString("nombre_completo"));
				usuario.setPassword(rs.getString("password"));
				usuario.setUsuario(rs.getString("username"));
				usuario.setActivo(rs.getInt("enabled"));
				usuario.setRol(rs.getString("nombre_rol"));
				return usuario;
			}
		});
		return usuarioRes;
	}

}
